package com.jinghang.scala_base._1_Scala集合

//import scala.collection.mutable
//import scala.collection.mutable._
object MapApp extends App{


  /**
    * 不可变map
    *   作为传递参数的集合使用，节省空间
    */
  val a = Map("laowang" -> 18, "zhangsan" -> 30)

  val b = Map("laowang" -> 18, "zhangsan" -> 30)

  //如果有key就返回value，如果没有该key就返回第二个默认参数
  a.getOrElse("laowang", 9)//直接返回元素
  a.get("laowang")//返回Option[B]对象
  a("laowang")//直接返回元素18




  val c =scala.collection.mutable.Map(""->16)
  //如果集合中没有该key添加元素，如果集合中有该key修改元素
  c("xiaoxu") = 25
  c += ("laowang" -> 18, "zhangsan" -> 30)
  //合并两个map集合
  c ++= Map("laowang" -> 18, "zhangsan" -> 30)

  c.get("xiaoxu")//返回 Option[String]
  c.get("xiaoxu").get
  c.getOrElse("laowang", 9)


  //遍历map的key和value
  for ((key, value) <- b) {
    println(key + " : " + value)
  }

  //遍历map的key
  for (key <- b.keySet) {
    println(key + " : " + b.getOrElse(key, 9))
  }
  //遍历map的value
  for (value <- b.values) {
    println(value)
  }

    //使用占位符“_”的语法
    for((key,_) <- b) {
      println(key + " : " + b.getOrElse(key, 9) )
    }

}



